home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1998 #4 / Amiga Plus CD - 1998 - No. 4.iso / pd / tools / wbstars2.0 / source / wbstars_functions.c < prev    next >
C/C++ Source or Header  |  1997-05-28  |  2KB  |  99 lines

  1. /* $VER: WBStars_functions.c 2.0b4 (28 May 1996)
  2. */
  3.  
  4. #include <proto/graphics.h>
  5. #include <proto/layers.h>
  6.  
  7. #include "WBStars_include.h"
  8. #include "WBStars_protos.h"
  9. #include "WBStars_plot.h"
  10.  
  11. int    SetPixel(int x, int y, char force)
  12. {
  13.     ULONG    APen;        /* because this is not "our" RastPort    */
  14.     ULONG    BPen;        /* we have to save the things that we    */
  15.     ULONG    DrMd;        /* will change to write the Pixel    */
  16.     char    color;
  17.  
  18.     if(!locked) LockLayerInfo(LInfo);
  19.  
  20.     color=ReadPixel(RPort,x+minx,y+miny);
  21.  
  22.     if( force || color==bg_color )
  23.     {
  24.         APen    = GetAPen(RPort);    /* get the Pens and    */
  25.         BPen    = GetBPen(RPort);    /* the DrawMode        */
  26.         DrMd    = GetDrMd(RPort);
  27.  
  28.         SetABPenDrMd(RPort, fg_color, BPen, JAM1);    /* set our Pens and DrawMode    */
  29.         WritePixel(RPort,x+minx,y+miny);        /* Write our Pixel        */
  30.  
  31.         SetABPenDrMd(RPort, APen, BPen, DrMd);        /* Reset the Rastport        */
  32.  
  33.         if(!locked) UnlockLayerInfo(LInfo);
  34.  
  35.         return (int)color;
  36.     }
  37.  
  38.     if(!locked) UnlockLayerInfo(LInfo);
  39.  
  40.     return -1;
  41. }
  42.  
  43. char    ClearPixel(int x, int y, char color)
  44. {
  45.     ULONG    APen;
  46.     ULONG    BPen;
  47.     ULONG    DrMd;
  48.  
  49.     if(!locked) LockLayerInfo(LInfo);
  50.  
  51.     if( ReadPixel(RPort,x+minx,y+miny)==fg_color )
  52.     {
  53.         APen    = GetAPen(RPort);
  54.         BPen    = GetBPen(RPort);
  55.         DrMd    = GetDrMd(RPort);
  56.  
  57.         SetABPenDrMd(RPort, color, BPen, JAM1);
  58.         WritePixel(RPort,x+minx,y+miny);
  59.  
  60.         SetABPenDrMd(RPort, APen, BPen, DrMd);
  61.  
  62.         if(!locked) UnlockLayerInfo(LInfo);
  63.  
  64.         return TRUE;
  65.     }
  66.  
  67.     if(!locked) UnlockLayerInfo(LInfo);
  68.  
  69.     return FALSE;
  70. }
  71.  
  72. char    Test1Pixel(int x, int y)
  73. {
  74.     if( ReadPixel(RPort,x+minx,y+miny)==fg_color )
  75.     {
  76.         return TRUE;
  77.     }
  78.  
  79.     return FALSE;
  80. }
  81.  
  82. void    LockPlotArea()
  83. {
  84.     if(!locked)
  85.     {
  86.         LockLayerInfo(LInfo);
  87.         locked=TRUE;
  88.     }
  89. }
  90.  
  91. void    UnlockPlotArea()
  92. {
  93.     if(locked)
  94.     {
  95.         UnlockLayerInfo(LInfo);
  96.         locked=FALSE;
  97.     }
  98. }
  99.